<template>
    <div class="w750 white-bg"></div>
</template>

<script>
import { tokenManage } from 'utils/Cache'
import oauthApi from 'api/login'

export default {
    data() {
        return {}
    },

    created() {
        console.log('第三方登录回来')

        let status = this.$route.query.status
        let msg = this.$route.query.msg
        let token = this.$route.query.token

        console.log('status: %s, msg: %s, token: %s', status, msg, token)

        if (status == 1) {

            //如果验证通过，并已关联第三方，从什么页面过来的就跳回什么页面去
            token = JSON.parse(token)
            tokenManage.setToken(token)

            //从什么页面过来的就跳回什么页面去
            var thirdLoginRedirect = sessionStorage.getItem('thirdLoginRedirect')

            console.log('回跳页面: %s', thirdLoginRedirect)

            // 判断登录完成后是否立即补充个人信息
            this.getSetupInfo().then((res) => {
                if (res.result) {
                    this.$dialog
                        .confirm({
                            title: '提示',
                            showCancelButton: false,
                            message: '您未完善个人信息，请前往完善个人信息'
                        })
                        .then(() => {
                            this.$router.replace({ name: 'security', query: { need: 'finish', redirect: thirdLoginRedirect } })
                        })
                } else {
                    this.$router.replace(thirdLoginRedirect)
                }
            })
        } else {
            console.log('第三方登录失败, 跳回首页')
            //如果验证没通过，跳转至首页并且提示
            this.$toast(msg)
            this.$router.replace('index')
        }
        sessionStorage.removeItem('thirdLoginRedirect')
    },
    methods: {
        // 个人信息补充
        getSetupInfo() {
            return new Promise((resolve, reject) => {
                oauthApi
                    .needSetupInfo()
                    .then((res) => {
                        if (!res.success) {
                            reject(res)
                        }
                        resolve(res)
                    })
                    .catch((err) => {
                        console.log('setup info err', err)
                        reject(err)
                    })
            })
        }
    }
}
</script>

<style scoped></style>
